// 1. 测试箭头函数中的this执行
// var foo = ()=>{
//     console.log(this)
// }
//
// foo()
// foo.call('wangba1')
// foo.apply('wangba2')
// foo.bind('wangba3')
// foo()


//2. 应用场景
var obj = {
    data: [],
    getData: function () {
        //1. 在箭头函数之前的解决方案,在外层赋值个this
        // 1.1 箭头函数之前
        // var self = this
        // //发送网络请求，将结果放到data中
        // setTimeout( function () { //
        //         var result = ['aa','bb','cc']
        //         self.data = result
        //     }, 2000
        // )
        // 1.2箭头函数之后
        // setTimeout里面的实现是调用function函数是独立函数调用，所以this指向的是上一层作用域;
        // 这里外层的作用域是obj，所以这里this就是obj,不需要用上面的self定义
        setTimeout( function () { //
                var result = ['aa','bb','cc']
                this.data = result
            }, 2000
        )

        //2.
        // function fn1() {
        //     console.log(this)
        // }
        // fn1() //默认绑定，用的window
    }
}
obj.getData()








